package org.example.ftp.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import java.net.BindException;

@RestControllerAdvice
@Configuration(proxyBeanMethods = false)
@Slf4j
public class GlobaExceptionHandler {

    @ExceptionHandler(MethodArgumentNotValidException.class)
    public String exceptionHandler(Exception e) {
        String message = e.getMessage();
        return message.substring(message.lastIndexOf("default message") + 15);
    }


//这里我们注意到@Valid抛出的异常类是MethodArgumentNotValidException ，所以我们将捕获该异常，并对它重新自定义异常信息
//  @ControllerAdvice
//  public class GlobalExceptionHandler {
//    @ExceptionHandler(value = MethodArgumentNotValidException.class)
//    @ResponseBody
//    public JsonResult MyExceptionHandle(MethodArgumentNotValidException exception){
//        exception.printStackTrace();
//        BindingResult result = exception.getBindingResult();
//        StringBuilder errorMsg = new StringBuilder() ;
//
//        if (result.hasErrors()) {
//            List<FieldError> fieldErrors = result.getFieldErrors();
//            fieldErrors.forEach(error -> {
//                System.out.println("field" + error.getField() + ", msg:" + error.getDefaultMessage());
//                errorMsg.append(error.getDefaultMessage()).append("!");
//            });
//        }
//        exception.printStackTrace();
//        return new JsonResult(-1,errorMsg.toString() );
//    }
//}

}
